#include "StdAfx.h"
#include "AND.h"
#include <iostream>

AND AND::cInstance( "AND");

AND::AND(const char* szID )
	: Gate( szID )
{
}

AND::AND(void)
{
	this->AddInput(new Input());
	this->AddInput(new Input());
	Gate::LinkInputsWithGate();
}


AND::~AND(void)
{
}


void AND::Calculation()
{
	if (GetInput(0)->GetValue() == GetInput(1)->GetValue() && GetInput(0)->GetValue() == 1)
		GetOutput()->SetValue(1);
	else
		GetOutput()->SetValue(0);
}

Node* AND::clone()
{
	return new AND();
}